#!/usr/bin/env node
/**
 * 前端服务启动脚本
 */

const { spawn } = require('child_process');
const fs = require('fs');
const path = require('path');

console.log('=' .repeat(60));
console.log('🎨 电商用户行为分析系统 - 前端服务');
console.log('=' .repeat(60));

// 检查Node.js版本
const nodeVersion = process.version;
console.log(`✅ Node.js版本: ${nodeVersion}`);

// 检查package.json
if (!fs.existsSync('package.json')) {
    console.log('❌ package.json文件不存在');
    process.exit(1);
}

// 检查node_modules
if (!fs.existsSync('node_modules')) {
    console.log('📦 安装依赖...');
    const install = spawn('npm', ['install'], { stdio: 'inherit' });
    
    install.on('close', (code) => {
        if (code === 0) {
            console.log('✅ 依赖安装成功');
            startServer();
        } else {
            console.log('❌ 依赖安装失败');
            process.exit(1);
        }
    });
} else {
    console.log('✅ 依赖已安装');
    startServer();
}

function startServer() {
    console.log('\n🚀 启动Vue开发服务器...');
    console.log('=' .repeat(50));
    console.log('📍 前端地址: http://localhost:8080');
    console.log('📍 登录页面: http://localhost:8080/login');
    console.log('=' .repeat(50));
    console.log('按 Ctrl+C 停止服务器');
    console.log('=' .repeat(50));
    
    // 启动Vue开发服务器
    const serve = spawn('npm', ['run', 'serve'], { stdio: 'inherit' });
    
    serve.on('close', (code) => {
        if (code === 0) {
            console.log('\n✅ 前端服务已停止');
        } else {
            console.log('\n❌ 前端服务异常停止');
        }
    });
    
    // 处理中断信号
    process.on('SIGINT', () => {
        console.log('\n🛑 正在停止前端服务...');
        serve.kill('SIGINT');
    });
}
